package com.example.rabbitmq.ksdemo.send;

import com.example.rabbitmq.util.ConnectionUtil;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import lombok.SneakyThrows;

import java.util.HashMap;
import java.util.Map;

/**
 * 生产者
 */
public class Send {

    public static void main(String[] argv) throws Exception {
        // 1. 建立和mq的连接
        Connection connection = ConnectionUtil.getConnection();
        // 2. 从连接中创建通道，channel   使用通道才能完成消息相关的操作
        Channel channel = connection.createChannel();
        // 3. 使用信道（创建）队列
        Map<String, Object> map = new HashMap();
        map.put("x-queue-type","classic");
        channel.queueDeclare("ks-queue", true, false, false, map);
        // 4. 定义发送到mq的消息内容

        Thread thread=new Thread(new Runnable() {
            @SneakyThrows
            @Override
            public void run() {
                while (true){
                    for (int i =1;i<=400;i++){
                        String message = "Hello World!"+i;
                        // 5. 向指定的队列中发送消息    参数2：   没有创建交换机  routingKey==队列的名字
                        channel.basicPublish("", "ks-queue", null, message.getBytes());
                    }
                    Thread.sleep(1000);
                }
            }
        });

        thread.start();
        System.out.println(" [x] Provider Send : ok" );
        //关闭通道和连接
//        channel.close();
//        connection.close();
    }
}